package com.geovis.emergency.spd.biz.zwdd.service;


import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.geovis.emergency.spd.entity.zwdd.pojo.EmployeeAccount;

import java.io.Serializable;

/**
 * <p>
 * 海证钉服务接口
 * </p>
 *
 * @author 王响
 * @since 2022-03-15
 */
public interface IZwddServcie extends Serializable {


    /**
     * 同步 通讯录
     */
    default void synchronize() {
        synchronize(null, null);
    }

    /**
     * 同步 通讯录
     *
     * @param removeOldDeptAndUser 是否清除旧组织机构信息和相关用户信息，默认false
     * @param removeOldUser        是否清除旧的用户信息，默认false
     */
    void synchronize(Boolean removeOldDeptAndUser, Boolean removeOldUser);

    /**
     * 注册监听事件
     */
    void registerListenerEvent();

    /**
     * 事件回调
     *
     * @param eventTag
     * @param content
     */
    void eventCallBack(String eventTag, String content);

    /**
     * 通过授权码获取用户信息
     *
     * @param authCode
     * @return
     */
    EmployeeAccount authLogin(String authCode);

    /**
     * 获取票据
     *
     * @return
     */
    JSONObject getTicket();



    /**
     * 移除事件
     *
     * @param eventCallbackId
     */
    void removeEvent(Long eventCallbackId);

    /**
     * 查询事件列表
     *
     * @return
     */
    JSONArray getEventList();
}
